Random Class
: UnityEngine에 내장된 클래스
-
랜덤 숫자 추출
Random.value
: 0.0에서 1.0 사이의 임의의 부동 소수점 수를 제공Random.Range(min,max)
: 사용자가 제공한 최솟값과 최댓값 사이의 임의의 숫자를 제공. 제공된 최솟값&최댓값이 int→int 반환 제공된 최솟값&최댓값이 float→float 반환
-
배열에서 랜덤 값 추출
var element=myArr[Random.Range(0,myArr.Length)];
위와 같이 배열 내 원소 중 하나를 무작위로 선택할 수 있다.
-
리스트 순서 섞기
void Shuffle(int[] deck){ for (int i=0;i<deck.Length;i++){ int temp=deck[i]; int randomIndex=Random.Range(i,deck.Length); deck[i]=deck[randomIndex]; deck[randomIndex]=temp; } }
-
아이템 집합에서 반복 없이 선택하기
Transform[] spawnPoints; Transform[] ChooseSet (int numRequired) { Transform[] result = new Transform[numRequired]; int numToChoose = numRequired; for (int numLeft = spawnPoints.Length; numLeft > 0; numLeft--) { float prob = (float)numToChoose/(float)numLeft; if (Random.value <= prob) { numToChoose--; result[numToChoose] = spawnPoints[numLeft - 1]; if (numToChoose == 0) { break; } } } return result; }